/*
 * validaciones.h
 *
 *  Created on: 28/09/2013
 *      Author: AXL
 */

#ifndef VALIDACIONES_H_
#define VALIDACIONES_H_

#include <stdio.h>
#include <string.h>

typedef enum{
	INVALID, VALID
}val_t;


/**
 * Valida que los argumentos pasados sean del tipo de dato indicado por formato.
 * PRE:		`datatypes` indica el tipo de dato a verificar.
 * RETURN 	0	todos los datos fueron validados y son correctos.
 *
 * EJ:
 * validateArgs(argc, argv, "cis" );
 * espera al menos 3 argumentos, el primero un char, el segundo un int y el
 * tercero un string.
 */
int validateArgs( int argc, char* argv[], const char* datatypes );

/**
 * Verifica que (`min` <= `num` <=  `max`)
 * RETURN 	0	num esta fuera del rango.
 */
int inRange (int num, int min, int max);

/**
 * Valida una fecha
 * RETURN 	0 	fecha invalida.
 */
int isDate(int day, int month);

/**
 * Valida que los numeros correspondan a una hora valida.
 * RETURN	0	validacion negativa
 */
int isTime( int hours, int minutes );

/**
 * Valida que la string recibida sea una fecha/hora de acuerdo al formato
 * establecido "yyyy-mm-dd hh:mm".
 * RETURN 	0	validacion negativa
 */
int isDateTimeString( char* date );


#endif /* VALIDACIONES_H_ */
